package com.tim.framework.page;

/**
 * 分页信息接口.
 * 
 * @author Tim.
 */
public interface Page {
	/**
	 * 是否是首页（第一页），第一页页码为1.
	 */
	public boolean isFirstPage();

	/**
	 * 是否是最后一页.
	 */
	public boolean isLastPage();

	/**
	 * 是否有下一页.
	 */
	public boolean hasNextPage();

	/**
	 * 是否有上一页.
	 */
	public boolean hasPreviousPage();

	/**
	 * 获取最后一页页码，等价于总页数.
	 */
	public int getLastPageNumber();

	/**
	 * 当前页包含的数据，不同的情况可能返回的数据类型不一样 如List，RowSet等，请参考具体的实现
	 */
	public Object getThisPageElements();

	/**
	 * 总的数据条目数量，0表示没有数据.
	 */
	public int getTotalNumberOfElements();

	/**
	 * 获取当前页的首条数据的行编码.
	 */
	public int getThisPageFirstElementNumber();

	/**
	 * 获取当前页的末条数据的行编码.
	 */
	public int getThisPageLastElementNumber();

	/**
	 * 获取下一页编码.
	 */
	public int getNextPageNumber();

	/**
	 * 获取上一页编码.
	 */
	public int getPreviousPageNumber();

	/**
	 * 每一页显示的条目数.
	 */
	public int getPageSize();

	/**
	 * 当前页的页码.
	 */
	public int getThisPageNumber();
}
